#include "../include/SearchEngineServer.h"
#include <iostream>
#include <thread>
#include <chrono>

void test_searchengine_server()
{
    std::cout << "=== 搜索引擎服务器测试 ===" << std::endl;

    try
    {
        auto server = SearchEngineServer::getInstance();

        // 在后台启动服务器
        std::thread server_thread([&]()
                                  { server->start(); });

        std::cout << "✅ 服务器启动成功！" << std::endl;
        std::cout << "💡 按 Ctrl+C 停止服务器" << std::endl;
        std::cout << "🔍 现在可以运行 ./test_client 进行测试" << std::endl;

        // 等待服务器线程（永久运行，直到手动停止）
        if (server_thread.joinable())
        {
            server_thread.join();
        }
    }
    catch (const std::exception &e)
    {
        std::cerr << "❌ 测试失败: " << e.what() << std::endl;
    }
}

int main()
{
    std::cout << "🚀 搜索引擎服务器完整测试" << std::endl;
    std::cout << "==========================================" << std::endl;

    test_searchengine_server();

    std::cout << "\n🎉 搜索引擎服务器框架完成!" << std::endl;
    return 0;
}